持續關注 chiounan 的 檔案系統的設計與效能 的系列文章,
來看看這 RAM disk 也是檔案系統上的實例應用,
如何來增加網站的效能。
介紹
現在記憶體不像以前那麼貴,
所以任何人都可以負擔購買比自己實際需要量更多的記憶體。
如果你有比系統所需更多的的記憶體,
就可以好好利用一下。
大家都知道RAM比硬碟快,
為何不利用RAM來進行需要大量磁碟I/O的工作。
來看一些例子:
.Drupal或WordPress會存一些檔案在 /cache 來加速。
.像.css .js .ico 及其他檔案是網站常被存取。
.如果你整個網站是較小規模且是靜態網頁。
如果你網站中的某網頁忽然變得非常熱門,
用這種RAM disk的方式,
該熱門網頁就可很快速地被存取;
如果不這樣做的話,
就算是有很大的頻寬,
甚至是用Nginx來做網站的服務器,
你仍會碰到網頁載入慢的問題,
是因為卡在磁碟I/O上的問題。
建立虛擬磁碟
系統可能已經內建有/dev/shm的虛擬磁碟,
最好是自建一個,
來為專門的目的使用。
建個目錄來掛上磁擬磁碟:
sudo mkdir -p /var/www/mysite/cache
sudo mount -t tmpfs -o size=700M,mode=0744 tmpfs /var/www/mysite/cache
這樣就可讓Drupal加速,
或給其他的網頁應用程式使用。
如此可讓Drupal存其cache檔在該位置,
如果檔案沒找到,就會再產生出來。
當然,也可以規劃把所有網站複製在該處,
但確認不需編輯修改該處的檔案,
因為重開機後,該處所有的檔案都會不見。
你也可以利用cron來定時把實際的檔案寫入到該位置,
或者把這個動作寫到 /etc/rc.local 的檔案中,
這樣一開機檔案就可寫到該位置。
用途有很多,這只是其中的一種用法。
另外要注意的是,
確認不要用太多的記憶體,
不然會有其他的問題;
大概用RAM的20~30%
來做此用途是合適的。
本文簡譯自:Create a RAM disk to improve performance of webserver